/**
到一个经典的问题：

（一）给定一组大小为n的整数数组，计算长度为k的子数组和的最大值。

比如

数组为：1，2，3，4

最大值为：3+4=7



数组为：-1，4，7，-3，8，5，-2，6

最大值为：7-3+8=12
 */

fun main(args: Array<String>) {
//    println(findKGroupMax(intArrayOf(1, 2, 3, 4),2))
    println(findKGroupMax(intArrayOf(-1, 4, 7, -3, 8, 5, -2, 6), 3))
}

fun findKGroupMax(nums: IntArray, k: Int): Int {
    var l = 0
    var r = l + k - 1
    var sum = 0
    for (i in l..r)
        sum += nums[i]

    var max = sum

    l++
    r++
    while (r <= nums.size - 1) {
         sum = sum - nums[l - 1] + nums[r]
        if (sum > max) {
            max = sum
            println("${nums[l]}  ${nums[r]}")
        }
        l++
        r++
    }
    return max
}